Hi, 大家好
最近有些新的工作在進行
以及有什麼內容是適合最後一篇文章的
因為 webpack
的內容已經介紹的很詳細了
接下來就來介紹這週一些碰到有趣的內容吧!
這我當初一樣是被 Fun Fun Function 的 MPJ 所啟發 (可以看youtube, medium)
基本上他所使用的技巧很簡單,總共有五個步驟(以下節錄/翻譯自上面的 medium)
Find a mentor - 尋找一個前輩/導師
找到一個已經對當前專案熟悉的前輩
並問他們是否樂意在接下來幾週被你打擾,問一些呆呆的問題(像是該用幾版的 npm)
要在沒有人協助的狀況下進入一個 project 是很困難的
有個 mentor 會省下你非常多時間
Get an overview - 聽前輩介紹 project 的概要
請你的 mentor 給你整個 project 的一個概要
包含整體的開發設計、User Story、Coding Style、使用的套件
對整個 Project 有個概念,能夠解決你對於為何、以及整個系統如何開發成現在的模樣的
Do a small quest - 執行一個小任務
問你的 mentor 有沒有一個 issue 或是 feature
是他覺得在新手掌握範圍之內的
Have a don’t-get-stuck-rule - 別自己卡太久
坐下來並好好試著獨自解決這個 task
但是如果你被同個問題卡了 15 ~ 20 分鐘
你卻對解決方案完全一無頭緒,那請向你的 mentor 請教
因為你要是 15 分鐘內無法解決,大概接下來 1, 2 個小時內也無法
「Have a dont't-get-stuck-rule」實際上會沒那麼容易執行
因為習慣上你會被一個問題緊緊迷住,而不想輕易放棄
但在軟體開發上,當一匹「Lone Wolf」(獨狼) 不是一件好事
因為偉大的專案都是被優秀的「團隊」所開發的,而不是任何一個自幹高手
Use code review - 跟你的同事一起看 code !
在你寫完這個 task 後,記得找你的 mentor 一起將 code review 過一次
這樣做可以讓知識更流通、增進 code 的品質、維持專案一致性、以及讓成員更有認同感
最後一步
接下來就可以一直持續 3 ~ 5 ,直到你有辦法獨自開發功能為止了
(有興趣可以直接看 MPJ 的影片,介紹得更詳細)
在進入新專案的開始,最重要的一點就是管理執行環境了
這邊就不贅述 dependency 管理的重要了
總之現在指定使用 node.js 和 npm 版本的方式有兩種
使用 n
, 這個由有名的 tj
所開發的工具
特色是輕量化、並且不需要太多的設定
使用 nvm
,另一個比較大型的專案
不過使用者似乎比較多
我們使用 n, nvm 最主要的目的
就是能讓我們在切換專案時
能夠使用不同版本的 npm 與 node.js,才不會踩到雷
我們使用過以前介紹過的指令 - which
可以查看目前的 node, npm 執行檔位於何處
至於 shell 怎麼知道你在輸入 node 時該去 /usr/local/bin 去抓 node 呢?
在 shell 內有個變數, $PATH
,他定義了 shell 該去哪些路徑一一尋找是否有 node
所以這邊有幾個做法可以改變 node, npm 的版本
你可以輸入
n 0.8.14
n latest
n lts
來直接下載,並切換版本到指定的 node
簡單來說
n 會將所有版本都放在 /usr/local/n 底下
在你切換版本的時候,他會將你指定版本的 node 從 /usr/local/n 複製到 /usr/local/bin 底下
n 是一個 npm 上的套件,要安裝得 npm install -g n
因為 n 會動到 /usr/local/bin
,所以在 Mac 上會得加上 sudo
使用 n 的時候,如果全域安裝其他 npm 套件,不會跟著你 node, npm 的版本一起跑
有時候會出現你安裝了某個新版的 package, 在舊的環境下這些指令壞掉的情況
簡單粗暴,直接改 /usr/local/bin
的版本
nvm 的安裝方法本身就比較複雜
官方本身有提供一段 shell script,會幫你把所有需要的路徑/腳本都建起來
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
(其他 shell 的用戶記得改 bash
成 zsh
, fish
)
nvm 本身其實不是什麼套件
他比較像是一段 shell script,用改變 $PATH
的方式來幫你切 node 版本的路徑
而他新增 nvm
這個指令的方式,更是直接改你的 .bash_rc
或 .zshrc
最下面是 nvm
安裝時自己幫我加的
要使用某個 node 版本
首先要 nvm install <version>
接下來 nvm use <version>
nvm 這邊一樣可以切換 node 和 npm 的版本
不過他實際的 node, npm 的執行檔,會放在 nvm 自己各自的資料夾裡
這邊 nvm
使用這些執行檔的方式
是在每次 nvm use
的時候,都在 $PATH
前面新增特定版本的 nvm
資料夾
來覆蓋原本預設的 /usr/local/bin
有趣的地方是,nvm 他全域安裝的套件
他一樣會個別擺在 .nvm/
之下的特定資料夾裡
這代表,每個 nvm 環境中,你都可以確保你的全域套件是特定版本的
(當然,因為後來也很少用全域套件了,這個的實用性有待考證)
(切版本時,你會發現 webpack 也不見了)
npx
是跟在 npm@5.2.0 出的一套工具
https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b
基本上,他可以用來執行你 node_modules 裡面的執行檔
搭配上有個在 npm 上推出的一個套件 node
https://www.npmjs.com/package/node
你沒有搞錯,有個 package 叫做 node
,他是 node.js 寫的
安裝 node@7.0.0
到本地端的 node_modules
你可以在 package.json 裡面寫
我們甚至可以「不」使用 npm 和 n 來管理 node 版本
夠酷吧!
最近開始從 iTerm2 切換到 hyper 這個專案
基本上他就是 electron (HTML, CSS, JavaScript) 寫的終端機
最近我覺得他變的成熟許多,可以來跳坑了
因為是 electron 寫的,他可以改很多瘋狂的 css 和 javascript 插件
https://gist.github.com/alxtz/2f3c01ff0a001b2241a7bed00c499150
這是我的設定檔(要放在 ~/.hyper.js
)
有興趣可以玩玩看
很感謝所有觀眾(如果有的話) 30 天來的陸續觀看
基本上我就是工具玩的不少,所以希望能帶給大家有趣的工具來玩玩
如果明年有機會的話,就明年見囉
掰掰!
有要勘誤可以在以下地點找到我
Email: alxtz.tw@gmail.com
GitHub: github.com/alxtz
Facebook: fb.com/alxtz.tw
LinkedIn: linkedin.com/in/alxtz